def is_fib_loop_number(num):
    # 将数字转换为各位数字的列表，例如197变成[1,9,7]
    digits = list(map(int, str(num)))
    # 获取数字的位数n
    n = len(digits)
    # 初始化序列，复制数字的各位作为前n项
    sequence = digits.copy()

    while True:
        # 计算新项：取序列最后n项的和
        next_num = sum(sequence[-n:])
        # 如果新项等于原始数字，说明是循环数
        if next_num == num:
            return True
        # 如果新项已经大于原始数字，不可能再出现，返回False
        if next_num > num:
            return False
        # 将新项添加到序列中继续检查
        sequence.append(next_num)

max_num = 0
for i in range(10**7, 0, -1):  # 从大到小遍历
    if is_fib_loop_number(i):
        max_num = i
        break

print(max_num)

